package com.sihan.framework.etm.mapper;

import java.util.List;

import com.sihan.framework.etm.vo.statistics.CurrentStateResultVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.framework.mybatis.mapper.BaseMapper;
import com.sihan.framework.etm.dto.CommonQueryDTO;
import com.sihan.framework.etm.entity.DeviceSurplusTool;
import com.sihan.framework.etm.entity.baseData.UseLocalModel;
import com.sihan.framework.etm.schema.master.BorrowReturnRecordSchema;
import com.sihan.framework.etm.schema.master.NewToolSchema;
import com.sihan.framework.etm.vo.CommonQueryResultVO;

@Mapper
public interface CommonMapper extends BaseMapper<CommonQueryResultVO, String>{
	//设备编号
	List<CommonQueryResultVO> selectDeviceCodeForPull(@Param("param") CommonQueryDTO dto);

	List<CommonQueryResultVO> selectDeviceBindingTicket(@Param("orgId")String[] orgId);
	//工器具编号
	List<CommonQueryResultVO> selectToolCodeForPull(@Param("param") CommonQueryDTO dto);
	//用户姓名
	List<CommonQueryResultVO> selectUserNameForPull(@Param("param") CommonQueryDTO dto);
	//用户工号
	List<CommonQueryResultVO> selectUserCodeForPull(@Param("param") CommonQueryDTO dto);
	//角色
	List<CommonQueryResultVO> selectRoleForPull(@Param("param") CommonQueryDTO dto);
	//用户和电话
	List<CommonQueryResultVO> selectUserAndPhoneForPull(@Param("param") CommonQueryDTO dto);
	//生产厂家
	List<CommonQueryResultVO> selectManufatorForPull(@Param("param") CommonQueryDTO dto);

	String selectManufatorId(@Param("param") String manufatorName);
	//定位装置
	List<CommonQueryResultVO> selectPositionDeviceForPull(@Param("param") CommonQueryDTO dto);
	//种类和型号
	List<CommonQueryResultVO> selectToolTypeModelForPull(@Param("param") CommonQueryDTO dto);
	//采购订单
	List<CommonQueryResultVO> selectToolPurchaseForPull(@Param("param") CommonQueryDTO dto);
	//工器具种类
	List<CommonQueryResultVO> selectToolClassifyForPull(@Param("param") CommonQueryDTO dto);
	//工器具名称
	List<CommonQueryResultVO> selectToolClassForPull(@Param("param") CommonQueryDTO dto);
	//工器具型号
	List<CommonQueryResultVO> selectToolStandardForPull(@Param("param") CommonQueryDTO dto);
	//需要新增的工器具
	List<CommonQueryResultVO> selectNeedAddToolForPull(@Param("param") CommonQueryDTO dto, @Param("masterId") String masterId);
	//需要新增的工器具编号
	List<CommonQueryResultVO> selectNeedAddToolCodeForPull(@Param("param") CommonQueryDTO dto, @Param("masterId") String masterId);
	//查询保管地点
	UseLocalModel queryUseLocal();
	void updateToolExceptionInWarehouseTime(@Param("ids") List<String> ids);
	//已操作任务
	List<CommonQueryResultVO> selectTaskNameForPull(@Param("param") CommonQueryDTO dto);
	//操作待领取任务
	List<CommonQueryResultVO> selectNeedBorrowTaskNameForPull(@Param("param") CommonQueryDTO dto);
	//查询检验机构
	List<CommonQueryResultVO> selectToolInspectMechanismForPull(@Param("param") CommonQueryDTO dto);
	//查询状态
	List<CurrentStateResultVO> selectCurrentState(@Param("param") CommonQueryDTO dto);
	//更新工器具所在柜子
	void updateToolInDevice(@Param("deviceCode") String deviceCode,@Param("rfIds") List<String> rfIds);
	void updateToolOutDevice(@Param("rfIds") List<String> rfIds);
	//查询柜子还可以存放的工器具
	List<DeviceSurplusTool> selectDeviceSurplusTools(@Param("typeIds") List<String> typeIds);
	//查询未在目前柜子中的工器具
	List<String> checkToolNoDesctDevice(@Param("deviceCode") String deviceCode,@Param("rfIds") List<String> rfIds);
	
	
	List<BorrowReturnRecordSchema> selectBorrowDataForMaster();
	
	List<NewToolSchema> selectNewToolForMaster();
	
	//根据toolIds查询icodes
	List<String> selectIcodeByToolIds(@Param("toolIds") List<String> toolIds);
	
	//<!-- 查询虽然当前柜子是出库，但是是出库到另一个柜子的工器具 -->
	List<String> selectNoOutTools(@Param("deviceCode") String deviceCode,@Param("toolCodes") List<String> toolCodes);
	
	List<String> selectOrgByParentId(@Param("parentId") String parentId);
}
